package org.example.teacher.controller;

import org.example.teacher.Service.UserService;
import org.example.teacher.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class UserController {

    @Autowired
    UserService userservice;

    //    处理前端的用户请求，或者给前端传递数据
    @RequestMapping("/")
    public String main(){
        return "login";
    }

    //    进入管理系统主窗体
//    静态资源的引入： css,js,img
    @RequestMapping("/main")
    public String index(Model model){
        model.addAttribute("user");

        return "main";
    }
    //    进入用户注册页面
    @RequestMapping("/register")
    public String reg(){
        return "register";
    }
    //    处理一下用户的注册
    @RequestMapping("/registerProcess")
    public String register(@RequestParam String username,@RequestParam String password){
        if(username.isEmpty()){
            return "redirect:/register";
        }else{
//        将数据组装成user实体对象
            User user = new User();
            user.setUsername(username);
            user.setPassword(password);
            user.setStatus("0");
            System.out.println(user);
//        调用service的add方法将对象增加到数据库
            if(userservice.add(user)==1){
                return "redirect:/";
            }else {
                return "redirect:/register";
            }
//        如果成功，就进入login登录页面，否则，就提示错误
        }
    }

    //    处理用户的登录请求
    @RequestMapping("/loginProcess")
    public String loginProcess( @RequestParam String username, @RequestParam String password){
        if(username.isEmpty()){
            return "redirect:/error";
        }else{
//            1.组装一下user实体对象
            User user= new User();
            user.setUsername(username);
            user.setPassword(password);
//            2.调用service的findOne方法去查看数据库是否有前端发送的用户名和密码
            User userdb = userservice.findOne(user);
//            3.如果有用户名，而且密码也对，就可以进入主页
//              如果有用户名，但密码不对，进入错误页面
//              用户名不存在，直接进入错误页面
            if(userdb.getUsername().isEmpty()){
                return "redirect:/error";
            }else{
                if(userdb.getPassword().equals(password)){
//                    使用会话技术存储下来当前登录的用户，session

                    return "redirect:/main";
                }else{
                    return "redirect:/error";
                }
            }
        }
    }
}
